`define AXI_ADDR_WIDTH      32
`define AXI_DATA_WIDTH      64
`define AXI_ID_WIDTH        4
`define AXI_USER_WIDTH      1

// address config 
`define TIMER_BASE_ADDR 32'h1000_0000 
`define TIMER_RANGE     32'd12  // 4k

`define PLIC_BASE_ADDR  32'h1100_0000 
`define PLIC_RANGE      32'd12  // 4k

`define UART_BASE_ADDR  32'h1200_0000 
`define UART_RANGE      32'd12  // 4k

`define GPIO_BASE_ADDR  32'h1300_0000 
`define GPIO_RANGE      32'd12  // 4k

`define SPI_BASE_ADDR   32'h1400_0000  
`define SPI_RANGE       32'd12  // 4k 

`define Debug_BASE_ADDR 32'h2000_0000 
`define Debug_RANGE     32'd12  // 4k

`define ROM_BASE_ADDR   32'h3000_0000 
`define ROM_RANGE       32'd15  // 32k

`define NPU_BASE_ADDR   32'h7000_0000 
`define NPU_RANGE       32'd15  // 32k

`define DDR_BASE_ADDR   32'h8000_0000 
`define DDR_RANGE       32'd30  // 1G = 1024M = 1024 * 1024 K
